undefined와 null의 차이점에 대해 설명해주세요.
❓질문
undefined와 null의 차이점에 대해 설명해주세요.
💡 조사하기전 내가 알고 있던 내용
우리가 변수를 선언하고 초기화 되고 값을 할당합니다
이때 변수가 들어갈 수 있는 값에 undefined
라는 값과 null
이라는 값이있습니다
이 값 둘다 비어있다
라는 뜻을 의미하고있는데 이때 undefined
는 값이 할당 되지않았다. 라는뜻으로 쓰이고 null
은 값이 없다 라는 뜻으로 통상적으로 쓰이는 걸로 알고 있습니다.
자바스크립트에서 let 변수;
변수 선언을 했을때 undefined
로 초기화 되지만
변수에 null
값은 직접 넣어줘야 하기때문에 위의 뜻대로 사용하고 있는거같습니다.
🏫 정리한 내용
undefined
는 값을 아직 할당하지 않은 상태를 나타내고, 자바스크립트가 자동으로 부여하는 값입니다.
반면 null
은 의도적으로 값을 비워 둔 상태를 나타내며, 개발자가 직접 할당하는 값입니다. 또한 느슨한 비교에서는 같게
처리 되지만 엄격한 비교에서는 다르게
취급 된다는 점이있습니다.
추가적으로 객체를 참조하던 변수를 null
값으로 설정하면 해당 변수는 더 이상 그 객체를 가리키지 않으므로 참조가 끊어집니다. 그러면 자바스크립트의 가비지 컬렉터는 이 객체가 더 이상 사용되지 않는다고 판단해 메모리에서 이를 제거할 수 있습니다.
반면 undefined
는 자바스크립트 엔진이 자동으로 할당하는 값으로, 메모리 해제와 직접적인 관련은 없습니다.